﻿using System;

class Printer
{
    public void PrintFireArms(FireArms unit1)
    {
        Console.WriteLine("\nЕсли вы нуждаетесь в данном оружие нажмите 1 \n\nОгнестрельное оружие:\n"
                    + "Название: " + unit1.Name + "\n"
                    + "Цена: " + unit1.Price + "\n"
                    + "Вес: " + unit1.Weight + "\n"
                    + "Назначение: " + unit1.Appointment + "\n"
                    + "Калибр: " + unit1.Capacity);
    }



    public void PrintColdArms(ColdArms unit1)
    {
        Console.WriteLine("Если вы нуждаетесь в данном оружие нажмите 1 \n\nХолодное оружие"
                    + "Название: " + unit1.Name + "\n"
                    + "Цена: " + unit1.Price + "\n"
                    + "Вес: " + unit1.Weight + "\n"
                    + "Длина: " + unit1.length + "\n"
                    + "Объем: " + unit1.handCount + "\n"
                    + "Материал:" + unit1.material);
    }
    public void PrintMessage(string message)
    {
        Console.WriteLine(message);
    }
}

class Data
{
    public FireArms[] fire;
    public ColdArms[] cold;
    public Arsenal arsenal;

    private FireArmsCreator[] creators;
    private ColdArmsCreator[] creator;

    public void BindCreators()
    {
        fire = new FireArms[5];
        cold = new ColdArms[5];
        creators = new FireArmsCreator[2];
        creators[0] = new RifleCreator();
        creators[1] = new GrenadeCreator();
        creator = new ColdArmsCreator[2];
        creator[0] = new BladeCreator();
        creator[1] = new ThrowingKnifeCreator();
        arsenal = new Arsenal();
    }

    public void BindDate()
    {
        fire[0] = creators[1].FactoryMethod("SIG SG 550 Sniper", 60000, 7, "Контроль над противником", 5.56);
        fire[1] = creators[1].FactoryMethod("PGM Ultima Ratio Hecate II", 90000, 14, "Пробивание легкой техники и защиты", 12.7);
        fire[2] = creators[0].FactoryMethod("Пламя", 55500, 15, "Пробивание тяжелое техники", 30);
        fire[3] = creators[0].FactoryMethod("Искра", 65000, 31, "Пробивание авиатехники", 40);
        fire[4] = creators[0].FactoryMethod("-", 0, 0, "-", 0);
        cold[0] = creator[1].FactoryMethod("Катана", 1000, 0.8, 80, 2, "Сталь");
        cold[1] = creator[1].FactoryMethod("Лопатка", 1000, 0.6, 70, 1, "Железо");
        cold[2] = creator[0].FactoryMethod("Ножи", 400, 0.2, 20, 1, "Сталь");
        cold[3] = creator[0].FactoryMethod("Звездочки", 300, 0.2, 10, 1, "Железо");
        cold[4] = creator[0].FactoryMethod("-", 0, 0, 0, 0, "-");

        //rifle[0] = makers.FactoryMethod("SIG SG 550 Sniper", 60000, 7, "Контроль над противником", 5.56, 1000);
        //rifle[1] = makers.FactoryMethod("PGM Ultima Ratio Hecate II", 90000, 14, "Пробивание легкой техники и защиты", 12.7, 1000);
    }
}

class Dia
{
    public void dialog(Data data, Printer print)
    {
        data.arsenal = new Arsenal();
        print.PrintMessage("Введите название боекомплекта:");
        data.arsenal.Name = Console.ReadLine();

        /////////////////////////////////////
        print.PrintFireArms(data.fire[0]);
        print.PrintMessage("Дальность: 1200");
        if (Console.ReadLine() == "1")
        {
            data.arsenal.Fire1 = data.fire[0];
        }
        else
        {
            data.arsenal.Fire1 = data.fire[4];
        }

        print.PrintFireArms(data.fire[1]);
        print.PrintMessage("Дальность: 1500");
        if (Console.ReadLine() == "1")
        {
            data.arsenal.Fire2 = data.fire[1];
        }
        else
        {
            data.arsenal.Fire2 = data.fire[4];
        }

        print.PrintFireArms(data.fire[2]);
        print.PrintMessage("Снаряд: М21");
        if (Conso.ReadLine() == "1")
        {
            data.arsenal.Fire3 = data.fire[3];
        }
        else
        {
            data.arsenal.Fire3 = data.fire[4];
        }

        print.PrintFireArms(data.fire[3]);
        print.PrintMessage("Снаряд: A16");
        if (Console.ReadLine() == "1")
        {
            data.arsenal.Fire4 = data.fire[3];
        }
        else
        {
            data.arsenal.Fire4 = data.fire[4];
        }
        ////////////////////////////////////// 
        print.PrintColdArms(data.cold[0]);
        if (Console.ReadLine() == "1")
        {
            data.arsenal.Cold1 = data.cold[0];
        }
        else
        {
            data.arsenal.Cold1 = data.cold[4];
        }

        print.PrintColdArms(data.cold[1]);
        if (Cons.ReadLine() == "1")
        {
            data.arsenal.Cold2 = data.cold[1];
        }
        else
        {
            data.arsenal.Cold2 = data.cold[4];
        }

        print.PrintColdArms(data.cold[2]);
        print.PrintMessage("Количество: 10");
        if (Console.ReadLine() == "1")
        {
            data.arsenal.Cold3 = data.cold[3];
        }
        else
        {
            data.arsenal.Cold3 = data.cold[4];
        }

        print.PrintColdArms(data.cold[3]);
        print.PrintMessage("Количество: 20");
        if (Console.ReadLine() == "1")
        {
            data.arsenal.Cold4 = data.cold[3];
        }
        else
        {
            data.arsenal.Cold4 = data.cold[4];
        }
        ////////////////////////
        data.arsenal.Cost();
        data.arsenal.Weight();
    }
}


